--- ./src/greeter.c.orig	2013-09-05 22:26:27.000000000 +0000
+++ ./src/greeter.c	2014-03-07 09:51:02.000000000 +0000
@@ -428,6 +428,7 @@
     gboolean result;
     const gchar *c;
     gchar *remote_sessions_dir, *filename, *path, *service = NULL;
+    GFile *file;
     GError *error = NULL;
 
     /* Validate session name doesn't contain directory separators */
@@ -444,14 +445,20 @@
     path = g_build_filename (remote_sessions_dir, filename, NULL);
     g_free (remote_sessions_dir);
     g_free (filename);
-    result = g_key_file_load_from_file (session_desktop_file, path, G_KEY_FILE_NONE, &error);
-    if (error)
-        g_debug ("Failed to load session file %s: %s", path, error->message);
+
+    file = g_file_new_for_path (path);
+    if (g_file_query_exists (file, NULL)) {
+        result = g_key_file_load_from_file (session_desktop_file, path, G_KEY_FILE_NONE, &error);
+        if (error)
+            g_debug ("Failed to load session file %s: %s", path, error->message);
+        g_clear_error (&error);
+        if (result)
+            service = g_key_file_get_string (session_desktop_file, G_KEY_FILE_DESKTOP_GROUP, "X-LightDM-PAM-Service", NULL);
+        g_key_file_free (session_desktop_file);
+    }
+
     g_free (path);
-    g_clear_error (&error);
-    if (result)
-        service = g_key_file_get_string (session_desktop_file, G_KEY_FILE_DESKTOP_GROUP, "X-LightDM-PAM-Service", NULL);
-    g_key_file_free (session_desktop_file);
+    g_object_unref (file);
 
     return service;
 }
